4 Mysql 您所在的位置:网站首页 sql decimal长度设定 4 Mysql

4 Mysql

2023-03-15 16:08| 来源: 网络整理| 查看: 265

0 引用0.1 SQL语句的分类0.2 例题中用到的表1 DQL1.1 基础查询1.1.1 为字段起别名AS1.1.2 去重DISTINCT1.1.3 +号的作用1.1.4 拼接CONCAT(str1,str2,…)案例:查询员工名和姓连接成一个字段,并显示为姓名SELECT CONCAT(last_name,first_name) AS 姓名FROM employees;#案例:显示出表employees的两列,各个列之间用逗号连接,列头显示成OUTSELECT CONCAT(employee_id, ‘,’, first_name) AS OUT FROM employees;#特例:在拼接的字段commission_pct中部分值存在NULL,则这部分拼接结果是NULLSELECT CONCAT(id, ‘,’, commission_pct) AS OUT_PUT FROM employees;1.1.5 IFNULL(expr1,expr2)解决NULL:使用IFNULL(expr1,expr2)分情况讨论,字段expr1不为NULL的部分显示原来值,为NULL部分显示expr2。SELECT IFNULL(commission_pct,0) AS 奖金率, commission_pct FROM employees;SELECT CONCAT(id, ‘,’, IFNULL(commission_pct,0)) AS OUT FROM employees;#查询员工号176的员工的年薪:SELECT salary12(1+ IFNULL(commission_pct,0)) AS 年薪FROM employees;1.2 条件查询1.2.1 筛选条件1.2.2 通配符1.2.3 转义符1.3 排序查询1.3.1 ORDER BY1.3.2 LENGTH(str) 长度函数案例:查询员工名,并且按名字的长度降序SELECT LENGTH(last_name) AS 字节长度,last_name FROM employeesORDER BY LENGTH(last_name) DESC; #按函数排序注:按名字长度即字节长度:length(name)按名字即名字的字母顺序:name1.4 常见函数1.4.1 单行函数1.4.2 分组函数(聚合函数)1.sum([distinct] expr) 求和2.max([distinct] expr) 最大值3.min([distinct] expr) 最小值4.avg([distinct] expr) 平均值5.count([distinct] expr) 计数1.5 分组查询1.5.1 GROUP BY + HAVING1.6 连接查询1.6.1 sql92:等值连接1.6.2 sql92:非等值连接案例:查询员工的工资和工资级别SELECT last_name,salary,grade_levelFROM employees e,job_grades gWHERE salary BETWEEN g.lowest_sal AND g.highest_salGROUP BY employee_id;1.6.3 sql92:自连接案例:查询员工名和直接上级的名称(把一张表看作两张表)SELECT e.last_name 员工名,m.last_name 上级名称FROM employees e,employees mWHERE e.manager_id=m.employee_id;#上级编号=上级的员工号1.6.4 sql99:内连接1.6.5 sql99:外连接1.6.6 sql99:交叉连接1.7 子查询1.7.1 where或having后面1.7.2 select后面案例:查询员工号=102的部门名SELECT (SELECT department_name,e.department_id FROM departments dINNER JOIN employees eON d.department_id=e.department_idWHERE e.employee_id=102) 部门名;1.7.3 from后面1.7.4 exists、not exists后面existsSELECT bo.*FROM boys boWHERE NOT EXISTS(SELECT boyfriend_idFROM beauty bWHERE bo.id=b.boyfriend_id1.8 分页查询1.9 联合查询2 DML2.1 插入(添加)语句2.1.1 方式一:经典的插入2.1.2 方式二:2.1.3 两种方式大pk2.2 修改2.2.1 修改单表的记录2.2.2 修改多表的记录:先连接成一个表2.3 删除2.3.1 方式1:delete语句2.3.2 方式2:truncate语句:清空表中全部数据2.3.3 两种方式的区别【面试题】3 DDL3.1 库和表的管理3.1.1 库的管理:3.1.2 表的管理:3.1.3 创建库、表通用的写法:3.2 常见数据类型3.3 常见约束3.3.1 创建表时添加约束3.3.2 修改表时添加约束3.3.3 修改表时删除约束3.4 标识列(自增长列)3.4.1 创建表时设置标识列3.4.2 修改表时设置标识列3.4.3 修改表时删除标识列4 创建模拟数据必需的存储函数

0 引用

0.1 SQL语句的分类

DQL(Data Query Language)数据查询语言:select DML(Data Manipulate Language)数据操作语言:insert 、update、deleteDDL(Data Define Languge)数据定义语言:create、drop、alterTCL(Transaction Control Language)事务控制语言:commit、rollback

0.2 例题中用到的表

1 DQL

1.1 基础查询

查看指定数据库下指定表中的结构:USE 数据库名SELECT 查询列表FROM 表名;①通过select查询完的结果是一个虚拟的表格,不是真实存在②查询列表(要查询的东西)可以是:表中的常量值、表达式、字段、函数1.查询表中的单个字段:SELECT last_name FROM employees;2.查询表中的多个字段:依次双击要查询的字段(会自动加着重号``用来区分字段和关键字),不同字段之间用逗号隔开(末尾不加逗号)3.查询表中的所有字段:SELECT * FROM employees; (顺序和原始表一样)4.查询常量值:SELECT ‘john’;5.查询表达式:SELECT 100%98;6.查询函数:SELECT VERSION();

1.1.1 为字段起别名AS

① 便于理解;②如果要查询的字段有重名的情况,使用别名可以区分开来方式一:使用AS:字段名 AS 别名SELECT 100%98 AS 结果;SELECT last_name AS 姓,first_name AS 名 FROM employees;方式二:使用空格(省略AS):字段名别名SELECT last_name 姓,first_name 名 FROM employees;#特例:别名中有特殊符号,需要使用单’’或双引号””把别名包起来SELECT salary AS “out put” FROM employees;#案例:查询salary,显示结果为out put

1.1.2 去重DISTINCT

去重:在字段名的前面加上关键字DISTINCT#案例:查询员工表中涉及到的所有的部门编号SELECT DISTINCT department_id FROM employees;

1.1.3 +号的作用

(1)java中的+号:①运算符,两个操作数都为数值型②连接符,只要有一个操作数为字符串(2)mysql中的+号:仅仅只有一个功能:运算符select 100+90; #两个操作数都为数值型,则做加法运算select ‘123’+90;#只要其中一方为字符型,试图将字符型数值转换成数值型。如果转换成功,则继续做加法运算;select ‘john’+90;#如果转换失败,则将字符型数值转换成0。select null+10;#只要其中一方为null,则结果肯定为null

1.1.4 拼接CONCAT(str1,str2,…)案例:查询员工名和姓连接成一个字段,并显示为姓名SELECT CONCAT(last_name,first_name) AS 姓名FROM employees;#案例:显示出表employees的两列,各个列之间用逗号连接,列头显示成OUTSELECT CONCAT(employee_id, ‘,’, first_name) AS OUT FROM employees;#特例:在拼接的字段commission_pct中部分值存在NULL,则这部分拼接结果是NULLSELECT CONCAT(id, ‘,’, commission_pct) AS OUT_PUT FROM employees;

1.1.5 IFNULL(expr1,expr2)解决NULL:使用IFNULL(expr1,expr2)分情况讨论,字段expr1不为NULL的部分显示原来值,为NULL部分显示expr2。SELECT IFNULL(commission_pct,0) AS 奖金率, commission_pct FROM employees;SELECT CONCAT(id, ‘,’, IFNULL(commission_pct,0)) AS OUT FROM employees;#查询员工号176的员工的年薪:SELECT salary12(1+ IFNULL(commission_pct,0)) AS 年薪FROM employees;

1.2 条件查询

条件查询:根据条件过滤原始表的数据,查询到想要的数据(当筛选条件成立时)。SELECT 查询列表 FROM 表名WHERE 筛选条件;注:WHERE一定放在FROM后面

1.2.1 筛选条件

根据筛选条件的不同分类:一、条件运算符表达式> < >= 10000二、逻辑运算符表达式:用于连接条件表达式&&和and:如果连接的条件同时成立,结果为true,否则为false||或or:只要有一个条件成立,结果为true,否则为false!或not:如果连接的条件本身为false,结果为true,反之为false 示例:salary>10000 && salary



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有